System for advising a user when selecting a product

ABSTRACT

A product selection system for advising a user whether or not to purchase a product such as a food product includes a product database ( 200 ) comprising data on a plurality of products, a hand-held barcode reader ( 106 ) for identifying a product, and processing means ( 206 ) for identifying whether the product has one or more user selected characteristics of the product. The characteristics may include the method of treatment or manufacture of the product, distance the product has travelled from origin, place of origin, politics of the region of origin, type of labour used in manufacture or production, details of the manufacturer or supplier, health risks, public health warnings associated with the product, special offers and the like.

The present invention relates to a product selection system for use, forexample, in supermarkets and the like.

Supermarket customers are today presented with an enormous range ofdifferent food products. For many of the products on sale, such as freshvegetables, fish, and meat, the content and nature of the food isobvious and easy to identify. If a person is allergic or simply wishesto avoid these types of foods, this can be done easily.

Many food producers now include a nutritional information table on thepackaging, in anticipation of a legal requirement or for commercialreasons. All the tables contain four basic items of information Thefirst is normally the number of calories in each 100 g portion, followedby the amount of fat, the amount of protein and the amount ofcarbohydrate. Since each figure is provided in grams per 100 g portion,the customer can compare the figures directly with other products. Thenutritional information provided can then be used by customers to countthe calories they are buying for dieting or for medical conditions,and/or reduce their intake of individual items such as saturated fat orsalt.

Systems are known for informing a user of the ingredient content of aproduct. However, prior art systems are either limited in their use bybeing limited to the information given to the user or may be expensive,bulky or impractical due to the amount of memory space required to storeinformation on many products.

U.S. Pat. No. 5,478,989 discloses a system for generating personalisednutritional information which includes means for inputting personal datarelating to an individual, a barcode reader for inputting dataidentifying at least one food product, a processor for correlating thepersonal data with prestored nutritional data pertinent to the foodproduct, and means for outputting information to the person based on thecorrelation. The prestored nutritional data may include informationrelating to allergy warnings pesticide levels and the names ofindividual stores which carry the foods.

U.S. Pat. No. 4,780,599 discloses the use of a hand-held bar codereading device to retrieve product information for users. FR-A-2702583discloses the use of a hand-held barcode reader which is used to makepurchasing decisions based on the price of selected products

The present invention seeks to provide an improved product selectionsystem.

According to an aspect of the present invention, there is provided aproduct selection system for advising a user whether or not to purchasea product, including a product database comprising product data on aplurality of products, product selection means for selecting aparticular product listed in the database, user preference means fordetermining user preferences based on selected characteristics of theproduct, wherein the product data includes predetermined characteristicsof each product, one or more of said characteristics being unrelated tothe ingredient content of a product; and data processing means operableto generate sub-database of products matching the user preferences.

In an embodiment, the product characteristics include one or more of:method of treatment or manufacture, distance product has travelled fromorigin, place of origin, politics of region of origin, type of labourused in manufacture or production, details of manufacturer or supplier,health risks, public health warnings associated with the product,special offers.

Preferably, the system is arranged to make a decision for a user aswhether or not to purchase a selected product. The system may includemeans to explain to a user the reasons for the decision based uponselected product characteristics.

In the preferred embodiment, the system includes a central processingstation comprising the product database and one or more mobile userdevices. The or each user device is preferably hand-held.

Advantageously, the or each user device is programmable by the centralprocessing station so as to contain a part of the product databaserelevant only to an identified user.

The reader may include barcode reading means for identifying a selectedproduct from a barcode thereon. The reader may additionally oralternatively be provided with reading means for reading a productidentifier other than a barcode. Such identifiers may be a code, theproduct name, a number or any other suitable identifier.

In an embodiment, the system includes user monitoring means formonitoring products considered for purchase by a user.

According to another aspect of the present invention, there is provideda user portable device for advising a user whether or not to purchase aproduct, including product identifying means for identifying a productto be tested, a database of product characteristics, means for comparingthe characteristics of an identified product with user selectedcharacteristics and means for advising a user whether or not to purchasethe product on the basis of said determination, wherein the databaseincludes only data deemed relevant for the particular user.

According to another aspect of the present invention, there is provideda method of advising a user whether or not to purchase a product,including the steps of determining user preferences by selection of oneor more product characteristics, identifying a product selected by theuser on the basis of a product identifier, determining whether theproduct includes one or more of the user selected productcharacteristics from a product database including one or more productcharacteristics unrelated to the ingredient content of a product, andnotifying the user of the results of the determination and generating asub-database of products matching user preferences.

There are customers who wish to buy these types of foods, but they mayavoid the food product altogether, for political or lifestyle reasons,simply because information on the product is not readily available tothem at the point of selection. Examples of these types of customersinterests, amongst others, are:

Chemically treated produce,

The number of miles the food has travelled,

The politics of the country of origin,

The use of child labour,

Blacklisted companies,

Foods avoided for religious reasons,

Public health warnings, such as recent concerns over eggs and Britishbeef,

Special offers.

In addition to these basic types of foods, there is an ever increasingnumber of processed and treated foods which are available today, whereit is difficult for customers to identify quickly any individualconcerns they may have over a product. This may be due to the fact thatthe information is simply not on the packaging, or it is listed by anunfamiliar name.

Food producers are obliged by law to list the ingredients of a packagedfood product on the packaging of the product in descending order ofweight. Since there are presently no legal requirements to list theamount of any ingredient in a product, it is difficult for people whorestrict their consumption of certain ingredients to purchase thesefoods with any confidence. Moreover, there is no legal requirement forlisting ingredients for alcoholic beverages (wine, beer etc.) which canalso contain colourings and preservatives. Food additives are referredto by their E number or by chemical or common name, some of which maymean very little to the average customer.

It is also accepted that food producers will use their food packaging tosell the product, and unless there is a commercial or goodwill reasonfor highlighting a customer concern, such as low calorie foods, organicproduce etc., it is unlikely to be placed on the packaging in aprominent position, the text is often in a small character size, and dueto the different size and shapes of the packaging, the information maybe difficult to find.

The present invention can cater for such situations and can thus providea system which is more useful.

An embodiment of the present invention is described below, by way ofexample only, in which:

FIG. 1 is a schematic diagram of an example of hand-held scanner anddatabase;

FIG. 2 is a schematic flow chart of a simple version of productselection system;

FIGS. 3 to 5 are schematic diagrams of embodiments of overall systemintended for use in food supermarkets;

FIG. 6 is an embodiments of the principal components of a centralprocessing system;

FIGS. 7 to 11 are examples of software items for both the centralprocessing system of

FIG. 6 and for the hand-held reader of FIG. 1.

The examples of system described below are intended to use machinereadable identifiers on food products and the like in order to determinepredefined ingredients of the food products on a shop shelf and otheraspects of the products, such as origin, method of manufacture and thelike. The system is ideal for use by customers and organisationsinterested in identifying calorific values, potential allergic reaction,diabetic problems and so on. The preferred embodiments have beenprimarily designed for use at the point of selection of food products insupermarkets, where customers can find out quickly whether a foodproduct sought to be purchased contains ingredients which may cause harmor which it is wished to avoid for lifestyle or special dietary reasons.

It will be apparent that the system could be adapted for otherapplications and is therefore not limited to food products.

Referring to FIG. 1, the example of scanner and database system 10 shownis intended for use by a customer in a supermarket or the like. Thesystem is used to determine and warn of chosen ingredients which theuser should or should not consume, as is described in further detailbelow.

In the embodiment shown, the system 10 is designed to operate on thebasis of barcodes provided on packaged foods. For this purpose, thesystem 10 includes a barcode scanner 12, shown only in schematic form,which is able to read the barcodes on food products under the control ofa control system (not shown), such as a microprocessor. Since foodproducts are barcoded on the basis of the European Article NumberingSystem, such as EAN13 and EAN8 or a derivative thereof, the actualproduct can be identified from the barcode, irrespective of the shop orfood manufacturer.

The system includes a database (not shown) which is accessed on thebasis of the barcodes. The database includes, in the preferredembodiment, a description of the product, for assisting the user, anddata relating to the ingredients of the food product. The database mayinclude all the ingredients of each product or only those most likely tobe of interest to the user, such as those causing known allergies, thosenot suitable for people with certain illnesses such as diabetes, andthose having, “unacceptable” calorific value or fat content. Theingredient data could be stored as code designators which are translatedinto their actual ingredients for versions where the actual ingredientsare notified to the user.

The system 10 could also or in the alternative provide for ingredientswhich the user should consume, for example for dietary reasons. Thesemay, for example, be iron for a user suffering from anaemia.

For either purpose, the system may be set to take into accountingredient quantities rather than just ingredient presence.

The nature and possible content of the database are described in furtherdetail below.

The system 10 is provided with an input unit 14, which may be of anysuitable form, such as an alpha/numeric key pad. A display 16 is alsoprovided, which again may be of any suitable form such as a liquidcrystal display or equivalent. The display 16 provides data inputinformation and results of the determination of a particular foodproduct.

Additionally or alternatively, the system 10 may include an acousticindicator such as a loudspeaker or buzzer to inform the user of theresults of its determination of a food product. Similarly, instead ofdisplaying the results on a display such as the display 16, the system10 may be provided with any other suitable visual indicator, such as oneor more LEDs.

An example of method by which the system of FIG. 1 may operate is shownin FIG. 2. This is a simple implementation and the reader is referred tothe more detailed example described below.

In summary, in the method of FIG. 2, the control and processing unitwithin the system decodes the barcode, looks up the appropriate databaserecord and displays or otherwise indicates to the user, by an acousticor visual indicator, whether it is safe or wise for the user to purchasethat food product. For programming purposes, the display 16 may providean “entry” screen which prompts the current user to identify any allergyfor which the system 10 is to check, any calorific or similar parameterwhich the user requires and/or any other ingredient of which the userwants to be warned. In the case where the system is to be used by aplurality of users, the system can be reprogrammed by each user or thesystem 10 can include a memory (not shown) in which can be stored therelevant ingredient data for a plurality of users, for subsequentretrieval by means of an identification number or code.

In an alternative embodiment, data input for a user may be by means of aseparate personal computer which can be linked to the system 10.

The warning given by the system 10 could be a simple yes/no warning ormore specific information as to the particular food product, for examplequantity of the ingredient in the product. In the embodiment shown inFIG. 2 the system 10 is designed to give a simple yes or no indicationas to the existence of the ingredient in the food product tested andcalorific data.

Thus, the system has inputted therein details of the user's foodrequirements or preferences. The user is then able to scan any productcontaining an EAN barcode or a derivative thereof, at which point thesystem's software will check the ingredient database for any conditionfound that has been earlier inputted by the user, and report to the userin either visible and/or audible form that the scanned product containsone or more ingredients which it is inadvisable to consume based on thepre-programmed conditions.

The software within the system 10 will advise the user of any productcontaining ‘unacceptable’ ingredients to the user and the system may becapable of printing a hard copy version of all products selected and/orthe total calorific value of the products selected.

in the specific example of FIG. 2, the user has programmed into thesystem 10 an allergy to nuts. When the barcode of the food producthaving barcode 5012345555559 is scanned, the control and processing unitof system 10 accesses the database at a location equivalent to barcode5012345555559, at which the database has ingredient codes A, Q. W and acalorific value for the product of 500 (preferably normalised to apredetermined product quantity). In this example, ingredient code Arefers to nuts, so the system 10 displays on display 16 the message “NutAllergy—No Purchase Advised”.

It is envisaged that the sample system described above would be used inother applications, for example to warn the user of particularingredients, nature or origin of a product.

It will be apparent that although the system 10 would normally besoftware controlled, it could be designed primarily on the basis ofhardware components.

FIGS. 3 to 11 give more detailed examples, which include additionalfeatures of the preferred embodiments.

The examples described below provide a system to complement any dietaryor avoidance plan by giving a customer the ability to check anyindividual product in a supermarket against their special interests tosee if it contains ingredients or amounts which are inadvisable topurchase. It can also be used to make requests for more information onany of the products in the supermarket. This can be achieved while thecustomer is walking around the shop using a product identifier systemsuch as that shown in FIG. 1.

SUMMARY OF SYSTEM OPERATION

Before using the system for the first time, the customer must beregistered, for example through a loyalty scheme with the supermarket,to provide their personal details, and to identify uniquely that person.Registration is preferably by computer data input, in which the customeris provided with a number of computer screens to describe specialinterests such as allergy details, dietary wishes or requirements,religious dietary requirements, political preferences, foodmanufacturing preferences, food origin preferences and so on.Supermarket staff could, alternatively enter such data either with thecustomer or at a later point in time.

(i) Step 1

Once the customer has been registered, they can collect a scanner from acentral location in the shop. At the central location, they will beasked to swipe or insert their account card into a magnetic stripreader, which will identify the customer from the account number on themagnetic strip of the card. Once the number is received, the main systemsoftware will download product information from a central computer tothe scanner for the customer's use. Only product details which fallwithin the interests of that customer will be downloaded to the scannerwith the account number of the customer. It will be appreciated thatother methods of identifying a customer could be provided.

(ii) Step 2

The customer simply scans the barcode of the product of interest ashe/she progresses through the shop. Once the barcode has been scanned,the scanner will check the product details held in its memory to see ifit is listed in the customer's predefined interests. If it is not, thescanner will log that it has read the product barcode, and report to thecustomer that no relevant information is available. If identified, thescanner will report to the customer in either visible or audible form ifit is inadvisable to purchase the product because it containsingredient(s) which they have identified to avoid, or if the product isnot desired for any other reason. The scanner is designed to explain,for example by means of scrolling text, the interest that was found andany ingredient amounts required.

(iii) Step 3

The scanner is then returned to the central location point. The scannercan then be uploaded to inform a central processing system who hasreturned the scanner, the list of products scanned by that person andthe day's date. Once the scanner has been returned to the centralsystem, the customer can leave or pass to a point in the shop to obtainmore information on the products scanned. Supermarkets can provide thisinformation through dedicated computers and printer, or by appending theinformation to receipts printed at the checkout.

Systems Overview

The following overviews introduce the preferred designs of centralprocessing system and of programming/access methods, in terms of theconnection between product components, the use of equipment and theinteraction with people. The relationships are shown as the product maybe used in three different implementation plans shown in FIGS. 3 to 5inclusive.

1. Stand-alone Central Client System

In the first implementation, shown in FIG. 3, the supermarket chooses toimplement the system on stand-alone computer equipment, with little orno direct connection to other computer equipment or other databasesoftware. This may be because only mainframe technology is deployed inshops, with little or no PC connectivity.

At the location of the supermarket's nutritional expert, a centralprocessing system is installed on a stand-alone computer 100. Thecomputer 100 will have a version of the software and the computerdatabase files required to maintain the food product details, a completelist of customer interests, the layout and design of a customerquestionnaire. Communication with other computers will be made by filetransfer. Although floppy diskettes are shown for file transfer, any ofthe other established methods of file transfer may be employed by thesupermarket company. One method which may be used is transfer throughexisting mini-frame links between shops.

At each shop, one or more client versions 102 of the central processingsystem are installed in a central location on computers of a similartype to the one used by the nutritional experts. In addition to the useof the keyboard and pointing devices used by the nutritional expert, theclient version supports the use of magnetic strip readers for customeraccount cards or loyalty cards, and connection to mounted barcodereaders.

At both the location of the nutritional expert, and the central locationin a shop, supermarket staff can modify the set-up of the software, andview or edit the database information through a series of visual displayscreens in the client version 102. Access to these screens may berestricted by password, and the use of a keyboard. Supermarket staff canthen address queries made by customers and edit their customer interestsimmediately.

Alternatively, when a customer enters the shop and swipes their customeraccount card through one of the readers 104 in a shop, a visual displayand pointing device can be used to select their own customer interests,the first time they use the system. This involves the validation of thecard, followed by check to see if they have used the system before. Ifit is the first time, the client version presents a number of questionson a visual display for the customer to select with the pointing device.

Once they have selected at least one customer interest, the clientversion 102 of the central processing system will select a dockedbarcode reader 106, and download to the reader's memory, the productsthat are of interest to that customer only. This reduces the list ofproducts so it will fit on the amount of memory on the reader, andreduces the initial download time. After preparing the products ofinterest for the customer for the first time, the software employstechniques to store and maintain permanently the list for the next timethe customer uses the system.

Once freed from its docking station, the barcode reader 106 uses loadedsoftware to respond to any barcode read by the customer, and no furtherinteraction is required by the client version of the central processingsystem until the barcode reader 106 is returned to one of a plurality ofdocking stations.

When the barcode reader 106 is returned to a docking station, the clientversion software will receive the list of products scanned by thecustomer, for analysis within the supermarket, and for immediatereference should the customer have any queries. A further function canbe provided in the software to print a detailed report of thenutritional information and customer interests associated with theproducts scanned by a customer.

2. Networked Central Client System

In the next example of system, shown in FIG. 4, the supermarket choosesto implement client versions 102′ on computers connected together in alocal area network in the shop. Each client version shares the samedatabase files for processing customer requests in the shop. Connectionto a central database site or other sites is administered outside of thesystem. In this implementation, the extraction of information fromsystem files, and the import of information into its files, is performedas part of a scheduled batch process by other application software usedin the shop.

3. Server System

In the third example, shown in FIG. 5, the supermarket chooses toimplement client versions 102″ on computers connected together in alocal area network. Each local area network in a shop is also connectedto other local area networks by dial-up phone access or by dedicatedlease lines. Client/Server software is already deployed to manage thetransfer of data from one site to another. In this case, a serverversion 102″ is installed on an application server in the shop, to sendand receive information automatically between sites, and to maintain thedatabase files in the shop for other client versions or components.Known advanced database file replication techniques can be used todistribute information, if Oracle™ or latest versions of Microsoft SQLServer™ are deployed.

Product Component Design

The individual product components of the preferred embodiment can bestated with their role and relationship between each other. Reference ismade to the block diagram of FIG. 6 which shows the principal productcomponents.

(1) Database Manager 200

Software provides permanent records of customer interests, productdetails and software settings for fast and quick access at criticalpoints in the use of the system. This product component is used by thenutritional experts in the supermarket company to set-up the informationin the first place, and to maintain the information when required. Itprovides the set-up of access rights to the information for other staffusing the system, since security may be an important issue for thesupermarket company. It also provides the set-up of database parametersfor the support of different database file formats and methods of accessexpected by each supermarket company.

It is envisaged that the product component will consist of a number ofvisual look-up database tables, with selection buttons on screen toview, edit or delete individual records in each of the tables. In one ofthe displayed forms, the operator is able to select the type of databasefile format for the tables, the OEM parameters for accessing the files,and the system passwords which provide functional access.

In addition to the visual forms, there will also be a library offunction calls to read and write the database information to and fromother product component software. In this way, each other productcomponent does not need to know the specific details of the databasetables used, and changes made to the database structure will only needto be carried out in this Product Component.

When a customer uses the system for the first time, a sequence of visualforms may be used so that the customer can select their human interests.This product component will also provide for the set-up and layout ofthe forms displayed to the customer, since the content of the forms willbe decided by the supermarket company.

In the design of the database, special care is taken not to limit thenumber of human interests which may be stored against a product and thenumber of human interests that the customer can select, moreover thesupermarket is able to define the human interests and specific order ofdisplayed interests in the database without cause to change thesoftware. Each human interest can contain a range value or values to bedisplayed to the customer.

The term “human interests” is intended to denote more than just productingredients. For example, the range of human interests for a particularcustomer may include allergies to one or more particular foodingredients, desire to avoid or have particular ingredients or type ofingredient, such as carbohydrates, fats, sugars and the like. It mayalso include foods prepared according to certain religious or otherdietary criteria, such as Kosher, vegetarian, vegan foods and the like.“Lifestyle” interests may include foods of particular origin, productionmethods, foods which are the subject of health questions such assalmonella or BSE. The intention, thus, is to provide more than just anindication of composition of the food product by ingredients.

Care is taken in the design of the database to optimise the speed ofretrieval of product details at the point of download to the barcodereader 106. Given tile potential for international sales of the system,the method used to store text in the database makes it easy to provideinformation for multi-language display in all product components.

In order to use the application database manager 200, the operator isprovided with a keyboard and pointing device, or access to theinformation through another product component. Information stored usingthis product component will be in proprietary database file format, orWindows™ configuration file format (.INI files). When a member of staffruns the client or server version of the system, this product componentwill be loaded into computer memory, ready for use. More specificdetails of the Database Manager are given below.

(ii) Device Manager 202

Software provides the set-up of hardware/software component parametersfor the smooth implementation of the system with different expectedrequirements for barcode readers, magnetic card readers, computers,visual displays, printers and operating systems. Although a Windowsυoperating system will provide direct support for many computer devices,special software may be needed to manage the communication and set-up ofbarcode and magnetic card readers, using for example the ASYNC Plus 2™software library (produced by Turbopower Software Company, 4775Centinnal Boulevard, Colorado Springs, Co. 80919, U.S.A.).

It would also be advisable to provide functions within this productcomponent to recognise automatically all the devices on theworkstation/server, and to record their details, so that this can beprovided to other product components which require the same information.It is envisaged that the device manager 202 will consist of a number ofvisual forms which list the devices on the workstation/server and theirsettings. When experiencing problems with a device, an operator can usethis product component to adjust the settings of the device in the listdisplayed to resolve them. It will also provide the front screen for thesystem from which an operator can start all other product componentsresiding on the same computer. It also manages the processing time givento each of the product components.

In order to access the device manager 202 settings, the operator isprovided with a keyboard and pointing device, and an appropriatepassword provided by the database manager 200.

When a member of supermarket staff runs the client/server version 102 ofthe central processing system, this product component is loaded intocomputer memory, it displays the visual front screen to the system andit loads the database manager 200 into computer memory.

(iii) Dataload Manager 204

Software is provided to manage the interaction of the customer with thesystem at the point of entry into the system and at the point of returnof the barcode reader 106. When a customer enters into the system, thedataload manager 204 validates a customer's account number, passed to itby a magnetic card reader, decide whether to present the customer with aquestionnaire, if it is the first time he/she has entered into thesystem, and subsequently manages the download of product details to thebarcode reader 106, ready to take around the shop.

When the customer returns a barcode reader 106 to a cradle or dock ofthe system docking station, the dataload manager 204 manages thetransfer of the product codes scanned by the customer to the databasemanager 200, so that a permanent record can be made of the entries madeby the customer, for any queries the customer may have and for marketresearch purposes. Each time, the dataload manager 204 receives an entryfrom a customer, the customer account number is used to identify the useof a specific barcode reader 106, so that at the point of return, thedataload manager knows which customer is returning the barcode reader106. In this way, a list of current barcode readers 106 in use can bemaintained in the dataload manager 204, and the system can cope with theuse of more than one device in the shop.

The dataload manager 204 calls the database manager 200 and devicemanager 202 to perform database access and device communication. In thisway, the dataload manager will be device independent, and should thedatabase or devices change, then the dataload manager 204 will not needto be changed. It is envisaged that the dataload manager will consist ofa number of entry forms for multi-language display and filling in aquestionnaire, and the display of account card recognition, downloadprogress and any background marketing information required forpromotions on a visual display unit.

While waiting for customers to fill-in questionnaires, or displayingmarketing information, the dataload manager 204 will monitor barcodereader returns, and upload the product codes scanned by the customerusing calls through the device manager 202. It will then write theinformation to database tables with the customer account number usingthe database manager 200.

Both the filling-in of the questionnaire and the display of progress andthe like are options which can be switched-off. This allows dedicatednetwork computers to be used for the dataload manager 204, and othernetwork computers to be used just for entering and displayinginformation. It is envisaged that these options can be decided perinstalled copy of the system in the device manager against the visualdisplay parameter options. In order to use the dataload manager 204, theoperator will require a magnetic card reader and a barcode reader. Apointing device will be required to start the dataload manager, and touse the visual display elements, if they are switched on.

The dataload manager 204 is not loaded into computer memory untilselected by the operator from the front screen displayed by the devicemanager 202.

(iv) Barcode Reader Program 206

In order to drive the barcode readers 106, a specific program isprovided for each unit. The program resides on the barcode reader 106,with the purpose of managing the download and upload of data to thedevice manager of the system. Using the program on the reader, thecustomer can scan product barcodes, and find out whether the productsare inadvisable to purchase given their human interests, or that theiris no relevant information for the products. Although the system hasbeen designed to highlight allergies, special diets and lifestylechoices, the supermarket may define many other topics of interest suchas special offers and the like. When human interests are found for ascanned product, the program 206 scrolls the text for interests in thedisplay of the barcode reader, until the customer performs anotheraction on the reader. An initial audible tone is given if available onthe reader 106 when a selected product is inadvisable.

In order for the program 206 to provide product information to thecustomer, it stores in the barcode reader memory a product item file,and just the details of those products which are of interest to thecustomer. In this way, the amount of memory used is reduced to aminimum. Further use of a file containing all the text to be displayedin a specified language reduces the amount of memory used, and the twotechniques combined also reduce the time taken to download informationinto the barcode reader 106.

When the barcode reader 106 is returned to a cradle, the program 206will upload the product codes scanned to the device manager 202 softwarerunning a connected computer. In order to keep a track of who is usingwhich reader, the customer account number is downloaded and uploadedwith product information by the program and the device manager 202. Theprogram 206 is automatically started when the barcode reader 106 isturned-on, and after the barcode reader operating system is loaded.

(v) Data Transfer Module

This component manages the flow of information to and from externaldatabase sources of information. It is recognised that for manysupermarkets, there is already nutritional information and product itemdetails stored and maintained in other computer systems. In the initialset-up of database information, and thereafter to lesser extent, it isenvisaged that software is required to import and update product andcustomer information electronically.

The Data Transfer Module 208 provides visual display forms to theoperator to define the layout of information in external data sources tothe system. It also provides the ability to schedule the import of thisinformation. Likewise, the module can use the same layouts to schedulethe export of information from the database files maintained by thesystem. When an import or export job is defined by the operator, theData Transfer Module 208 writes the job details to the configurationfile of the device manager 202 component.

At the appointed time of a data transfer job, the device manager 202component will call functions in the database manager 200 to import orexport the information required. As the dataload manager 204 may beloaded at the same time, the device manager 202 carries out primarytasks in the dataload manager 204 first, until sufficient processingtime is available to carry out an individual record read or write. Inthis way, data transfer jobs do not adversely effect dataloading to andfrom the barcode readers 106.

Connectivity to remote sites and all data sources are provided by theoperating and networking software which the computer has loaded.Initially, selective criteria for imports and exports will be definedexternally to the Data Transfer Module 208 by the source or targetapplication software.

In order to use the Data Transfer Module 208, the operator is providedwith a keyboard and pointing device with the appropriate passwordprovided by the Database Manager 200.

Database Manager, Practical Example

The Database Manager of the preferred embodiment maintains all thedatabase files used by the system and provides a number of visual formson screen for an operator to maintain the files. It allows the operatorto design the layout of a customer questionnaire displayed on the screenwhen customers enter into the system for the first time. Using thequestionnaire, the customer can select the food products he/she wishesto avoid. The Database Manager 200 also provides all the functions tothe other software components described above to access and maintaindatabase files and special formatted files used in downloading customerinterests to barcode readers.

The preferred relational database structure maintained by the DatabaseManager 200, shown in FIG. 7, allows direct access to any number ofinterests associated with a customer, and any number of interestsassociated to a product. In this way, the Database Manager 200 canretrieve the products which a customer is interested given the customeridentification (typically a customer account number).

FIG. 7 shows six database files used in this embodiment to maintain therelationship between customer, product and interest details. In eachmaster file, an item is only referenced once by a unique key. In thecase of the consumer master 300 file, each consumer registered in thesystem will be uniquely identified by an account number, and by a secondkey the consumer name is used to search for the consumer when required.Against the consumer account number and name are fields which store theconsumer address and any other personal details required by asupermarket to identify that person.

A Customer Interest Detail file 302 is used to store all the humaninterests for each individual listed in the Customer Master File 300.The Database Manager 200 finds all human interests in the CustomerInterest Detail file by finding the first customer interest with thecustomer account number, and reading all the following records with thesame customer account number. Since the customer account number is anindexed key in the detail file 302, all the human interests for a personwill be sorted together in sequence to provide fast retrieval.

In the Product Master file 304, all the food products listed in thedatabase are identified by unique product codes used in the supermarket.This is preferably the same code as the barcode used on the food productpackaging. The Product Interest Detail file 306 lists all the humaninterests associated with each individual product. As one of the indexedkeys for the detail file 306 is the product code, the Database Manager200 retrieves all the human interests for a product by finding the firstone with a product code value, and reading the following records untilthe product code value changes. Against each interest record for aproduct, a value can be stored for comparison.

Central to the database structure is the Interest Master file 308. TheInterest Master file 308 stores a limited but large number of uniquehuman interests by a short numeric code. For each interest stored in thefile, the user can store range values for comparison with actual productvalues for the same interest. There is also a field to store the sectionwhere the human interest appears in the customer questionnaire. A shortdescription is used to look up a human interest, rather than search forit by the short numeric code. A human interest can be any item ofinterest to the customer, it can be a range value, a specificingredient, a range of ingredients, or a lifestyle choice. As a humaninterest is stored in the Master file 300, the same numeric code anddescription is stored in another Master file, the Phrase Master file310.

The Phrase Master file 310 is used to display all text required in thesystem including human interest information. A Phrase Master file 310 ismaintained for each language required in the system. The numeric codesare the same in each of the Phrase files 310, the only difference beingthat the text is translated for each language. In this way, the textdisplayed in the system can be changed for each language by closing thecurrent Phrase Master file 310, and opening the Phrase Master file forthat language. For example, if it is wished to store the phrase ‘yellowliquid’ in the Phrase file 310. The English Phrase Master file 310 maycontain a unique number value 1 to identify the phrase text ‘yellowliquid’. To display the french equivalent of ‘yellow liquid’ there willbe a French Phrase Master file 310 which contains a record with theunique number value 1 and the translated phrase text for ‘yellow liquid’the words ‘liquide jaune.’

Since both the English and French Phrase Master files would refer to thephrase with the same unique key number, the system can display Englishor French text by accessing the files with the same key number value.

Database Preparation

Before any customer registration in the system, nutritional experts inthe supermarket company will need to setup the Human Interest Masterfile 308, the Product Master file 304, the Product Interest Detail file306, the Phrase Master files 310 for the languages required for interestdescriptions and any other text displayed on screen, and tile layoutdesign of the customer questionnaire. In order to achieve this simplyand to use existing computer information wherever possible, the DatabaseManager 200 has visual entry forms and functions based around tilefollowing recommended approach:

1. Type in all new human interests intended for use in the system. TheDatabase Manager 200 will then automatically generate the unique numericcode for each interest and create the corresponding phrases in thePhrase files 310 from the type d description given for each interest.

2. Design the layout of the customer questionnaire based on the humaninterests created. This will involve the selection of section titles,text displayed on the questionnaire and the selection of the order ofthe human interests in the sections.

3. Load the food product records in the Product Master file 304 from thesupermarket product item file using the Data Transfer Module 208,described above.

4. Load the product details containing human interests using the sameData Transfer Module 208, or type the interests that apply to eachproduct using the Database Manager 200. This applies to new humaninterests which may be created, once the database is in use.

Once these 4 steps have been achieved the database will be ready toreceive new customer registrations. The specific design of databasefunctions are described next in this section.

Database Functions

In the event that there is a major change to the Food Product Database304, such as new human interests or new products are introduced into thedatabase, or a customer wishes to question the information presented bythe system, or wishes to change interest selections, the DatabaseManager 200 provides visual entry screens for manual update of the humaninterests, product details and customer details which may be used bystaff in the supermarket company. This may be limited to access to thecustomer questionnaire for staff in the shop, or full access to thedatabase files for use by nutritional experts.

In addition, automated processes may be used in the Database Manager 200to maintain referential integrity between related database files, and todistribute database changes to other sites using the database.

There are relationships which need to be maintained between the CustomerMaster file 300, the Customer Interest Detail file 302, the InterestMaster file 308, the Product Master file 304 and the Product InterestDetail file 306.

Record Deletions

Referential integrity will only be broken when a deletion occurs, as theDatabase Manager 200 automatically generates the numeric codes forinterest Ids, and all other critical keys are protected from change bythe Database Manager 200. In the event that the supermarket wish todelete details from the database, the Database Manager 200 must alsoperform deletes from the following records:

Type of delete Required Automatic Delete Actions: Delete a CustomerDelete all customer interest detail records matching customer code,Delete all customer product detail records matching customer code,Delete customer master record Delete a Product Delete all productinterest detail records matching product code, Delete all customerproduct detail records matching product code. Delete a Human Delete allcustomer interest detail records matching Interest interest Id., Deleteall product interest detail records matching interest Id., Delete phraserecord matching interest Id. in each phrase language file, Delete humaninterest master record.

New Records

With the exception of new customer registration, which is a specificdatabase function, the Database Manager 200 performs a number ofadditions to the database files as follows:

Type of Addition Required Automatic Add Actions: Add a new Food ProductValidate product code Add product master record Add product interestdetail records Add a new human interest Validate questionnaire sectionValidate range values Add interest master record Add phrase masterrecords

In order for a food product to be added to the database, a valid productcode as used in the supermarket company is used. An external validationroutine will be called by the Database Manager 200 to check the productcode. At the same time as the product master fields are filled-in, theoperator can select the human interests associated with the product fromthe interest master file. The selected number of product interests willonly be limited by the number of human interests which are available.

When the operator decides, the Database Manager 200 writes the productmaster record to the Product Master file 304, and writes each of thehuman interests selected as an individual record to the Product InterestDetail file 306.

In order for a new human interest to be added. The Database Manager 200Generates the next unique interest number by retrieving the first recordin the Interest Master file 308, and adding one to it. Immediately, ifthere already exists a record in the Interest Master file 308 with thesame number, it will add one to interest number and attempt to add therecord again to the Interest Master file 308. The Database Manager 200continues to repeat the exercise, until it has successfully stored thenew interest master record with a unique number. This ensures that noother Database Manager version running at the same time will clash withthe current process.

Once the master record is stored, the Database Manager 200 uses the sameinterest number to add a record to each of the phrase language filesused by the supermarket. The phrase text is taken from the descriptiontyped by the expert for the human interest.

If range values are selected for the human interest, the DatabaseManager 200 stores a reference to a unit phrase already stored in thePhrase Master files 310. If the expert types new unit text for theinterest which does not exist in the Phrase Master files 310, theDatabase Manager 200 generates a unique phrase number to store the unittext, and it references the phrase number us ed in the interest masterrecord. An example of unit text will be ‘grams per 100 grams’

New Customer Registration

At the point when a new customer is registered into the system, theCustomer Master file 300 fields are filled in for the customer, and acustomer questionnaire displays on a visual display with the currenthuman interests listed in the Interest Master file. This is shown inFIG. 8.

Once the operator completes the questionnaire, the system stores theselected interests in the Customer Interest Detail file 302 with thecustomer account number and interest numeric codes (id.). The system isthen ready to create a list of all the products which contain the sameinterest numeric codes.

The system also allows for records to be updated, for example on theintroduction of new products, new human interests, altered customerinterests. Similarly, if more information becomes available table to thesupermarket about a product, it may wish to update product details aswell. This can be summarised as follows:

Type of Update Required Automatic Update Actions: Update Customerdetails Update customer master record Delete customer interest detailrecords Add customer interest detail records Update Product detailsUpdate product master record Delete product interest detail records Addproduct interest detail records Update Human Interests Update interestmaster record Update phrase master records Add new unit text to phrasemaster records

In order to update customer details, the Database Manager 200 retrievesand displays the current customer master record, with the currentcustomer interest detail records. The operator can change any of thedetails, except for the customer account number. The Database Manager200 preferably deletes all customer interest detail records, beforeinserting new ones, to ensure referential integrity.

Download to Barcode Reader

At the point when the system needs to compile the products which containthe customer's human interests to a barcode reader 106, the DatabaseManager 200 searches and gathers all the human interests listed by thecustomer from the customer interest detail file 300 given the customeraccount number. This is illustrated in FIG. 9.

It then searches the Product Interest Detail file 302 for each gatheredinterest, using the interest numeric code field. Each product interestrecord found is stored in a temporary list 320 (FIG. 10) in computermemory sorted on product code value with the interest details. Where thesame product is found more than once, the different interest details areappended to the same product code in the temporary list. Once all theproducts have been retrieved from the Product Interest Detail file 306,permanent records of the Product list 320 can be made to speed up accessto the details for future access, ready for the file contents to bedownloaded to the barcode reader 106.

Once the Download files 322, 324 (FIG. 10) are prepared, the CustomerMaster file 300 is updated for the customer record to note that abarcode reader 106 is in use by that customer. The file layout of theDownload files 322, 324 is designed specifically to fit into the smallamount of memory expected on the barcode reader 106, and to reduce thetime taken to download the files to the barcode reader 106. For acustomer with 5 human interests, and a 1000 food products with theseinterests, the Database Manager 200 will need to make 5 reads of theCustomer Interest Detail file 302, 5 reads of the Interest Master file308, 10 reads of a Phrase Master File 310, 1005 reads of the ProductInterest Detail file 306, and 1 read of the Customer Master file 300. Intotal, 1026 record retrievals.

This figure excludes duplicate reads of the Product Interest Detail file306 where two interests share the same product. Retrieval time will beeffected by the small record size of the Product Interest Detail file306, the fact that most of the reads are getting the next record, andthe large number of records in the file. An acceptable target speed isconsidered to be between 5 and 10 seconds.

The Download File structure 322, 324 for the reader will consist of avariable length indexed file to reduce the amount of storage spacerequired on the reader to hold all the product records required, and toreduce download time to the scanner from the central location point (seeFIGS. 3 to 5.

Preferred Download Product File Structure: Field or record size in bytesField & Record Description Minimum Maximum Type Banner Record 24 54Customer Account Number 20 50 Alpha No of Product Index records 4 4Number Product Index Records 17 Calculated Alpha Product Code 12 20Alpha Interest Location 4 4 Number No of Interest Records (1..254) 1 1Byte Interest Records 6 1524 Interest Id 2 2 Word Value 2 2 Word UnitPhrase Id 2 2 Word Minimum File Size for 1 Product, 1 Interest: 47 BytesFile size for 1000 products. average 5 interests: 47024 Bytes (DownloadRate of 9600 Baud, 5-6 Seconds)

In addition to the product file downloaded to the scanner, we will needto download a file containing the text to display for the interestrecords.

Preferred Download Phrase file Structure:- Field or record Size in bytesField & Record Description Minimum Maximum Type Phrase records 4 257Phrase Interest Id 2 2 Word Phrase size 1 1 Byte Phrase Text 1 254 AlphaMinimum File Size for 1 Product, 1 Interest: 4 bytes File Size for 1000Products. average 5 Interests: 2570 bytes (average size of text 40characters) (430 bytes)

The downloaded Phrase file will not need to be indexed, as we can expectthe barcode reader software to read the whole file contents within asecond.

When the customer returns the barcode reader 106 to a cradle linked tothe system, the Database manager 200 records the products scanned by thecustomer with the day s date, and the customer account number. Anyprevious records of the customer scan of products will be overwritten atthis point, so that only the most current details of the customer areheld in the Food Product Database 326. This requires the addition ofanother Database file to the Database structure previously defined, tostore the information, shown in FIG. 11.

In an embodiment, the customer is presented with a report of productsconsidered for purchase.

It will be apparent from the above, that the system can also be used bya supermarket to monitor customer behaviour, for example by determiningwhich products were checked by a particular customer through the barcodereader 106, how that customer passed through the shop and so on. Thiscan be achieved readily by an appropriate memory in the reader 106 andappropriate processing software in the central processing system of theshop.

What is claimed is:
 1. A product selection system for advising a usercomprising: a product database having user preference data correspondingto a plurality of products; a means for selecting a particular productlisted in the product database; a means for matching the userpreferences with each one of the plurality of products; a means forgenerating a sub-database having data corresponding to the plurality ofproducts matching the user preference, the sub-database residing withina mobile user device, and wherein the product database includespredetermined characteristics of each product, one or more of thecharacteristics being unrelated to the ingredient content of theparticular product; and a means for advising the user to select theproduct if the selected product has one or more of the predeterminedcharacteristics specified by the user in the sub-database.
 2. Theproduct selection system of claim 1, wherein the characteristics of theproduct include at least one of a member selected from a groupconsisting of method of treatment, method of manufacture, distance oftravel from origin, place of origin, politics of region of origin, typeof labor used in manufacture and production, details of manufacturersdetails of supplier, details of health risks, details of public healthwarnings associated with the product, details of special offers.
 3. Theproduct selection system of claim 1 or 2, wherein the system includesmeans to explain to the user the reasons for advising.
 4. The productselection system of claim 1, including a central processing stationwherein the product database resides, and at least one mobile userdevice.
 5. The product selection system of claim 4, further comprising ameans for programming at least one of the mobile user devices by thecentral processing station so as to contain a part of the productdatabase relevant to the user.
 6. The product selection system of claim1, further comprising a means for reading a barcode and a means foridentifying a selected product from the barcode thereon.
 7. The productselection system of claim 1, further comprising a means for monitoringproducts considered for purchase by the user.
 8. The product selectionsystem of claim 1, further comprising a means for monitoring productsconsidered for purchase by user.
 9. The product selection system ofclaim 1, wherein the characteristics of the product includes at least amethod of treatment.
 10. The product selection system of claim 1,wherein the characteristics of the product includes at least a method ofmanufacture.
 11. The product selection system of claim 1, wherein thecharacteristics of the product includes at least a distance of travelfrom origin.
 12. The product selection system of claim 1, wherein thecharacteristics of the product includes at least a place of origin. 13.The product selection system of claim 1, wherein the characteristics ofthe product includes at least a politics of region of origin.
 14. Theproduct selection system of claim 1, wherein the characteristics of theproduct includes at least a type of labor used in manufacture andproduction.
 15. The product selection system of claim 1, wherein thecharacteristics of the product includes at least a detail ofmanufacturer.
 16. The product selection system of claim 1, wherein thecharacteristics of the product includes at least a detail of supplier.17. The product selection system of claim 1, wherein the characteristicsof the product includes at least a detail of health risks.
 18. Theproduct selection system of claim 1, wherein the characteristics of theproduct includes at least a detail of public health warnings associatedwith the product.
 19. The product selection system of claim 1, whereinthe characteristics of the product includes at least a detail of specialoffers.
 20. A method of advising a user comprising the steps of:determining user preferences by selecting one or more productcharacteristics unrelated to the ingredient content of the particularproduct; identifying a product selected by the user based on a productidentifier; determining if the product selected by the user includes atleast one of the user selected product characteristics from a productdatabase, wherein the product database has at least one of the productcharacteristics unrelated to the ingredient content of the product;notifying the user of the results of the determination; generating asub-database having data corresponding to the products matching userpreferences; providing the sub-database to a mobile user device; andadvising the user to select the product if the product has one or moreof the predetermined characteristics specified by the user in thesub-database.
 21. The method of claim 11, wherein said productcharacteristics include one or more of a number selected from a groupconsisting of method of treatments method of manufacture, distance oftravel from origin, place of origin, politics of region of origin, typeof labor used in manufacture and production, details of manufacturer,details of supplier, details of health risks, details of public healthwarnings associated with the product, details of special offers.
 22. Themethod of claim 11, wherein the characteristics of the product includesat least a method of treatment.
 23. The method of claim 11, wherein thecharacteristics of the product includes at least a method ofmanufacture.
 24. The method of claim 11, wherein the characteristics ofthe product includes at least a distance of travel from origin.
 25. Themethod of claim 11, wherein the characteristics of the product includesat least a place of origin.
 26. The method of claim 11, wherein thecharacteristics of the product includes at least a politics of region oforigin.
 27. The method of claim 11, wherein the characteristics of theproduct includes at least a type of labor used in manufacture andproduction.
 28. The method of claim 11, wherein the characteristics ofthe product includes at least a detail of manufacturer.
 29. The methodof claim 11, wherein the characteristics of the product includes atleast a detail of supplier.
 30. The method of claim 11, wherein thecharacteristics of the product includes at least a detail of healthrisks.
 31. The method of claim 11, wherein the characteristics of theproduct includes at least a detail of public health warnings associatedwith the product.
 32. The method of claim 11, wherein thecharacteristics of the product includes at least a detail of specialoffers.